home *** CD-ROM | disk | FTP | other *** search
/ Utilities Professional 1-1500 / Utilities Professional 1-1500 (1994)(WPD)[!].iso / 12511500 / var1411.dms / var1411.adf / ReadMe.First < prev   
Text File  |  1994-02-06  |  12KB  |  274 lines

  1.  
  2.  
  3.  
  4.            LECed / LECasm combined editor/assembler
  5.  
  6.  
  7.                                  Release 1a
  8.  
  9.  
  10.                        Copyright (c) 1993 Justin Leck
  11.  
  12.                                 6th February 1994
  13.  
  14.  
  15.  
  16.  
  17.   The reason for writing this assembler was that I was a little disappointed
  18. with Devpac 3, and the PD/Shareware assemblers available. After taking a look
  19. at a copy of Devpac 3 at my local computer shop, I disliked the new interface
  20. (I prefer Devpac 2), and the fact that assembling speed had not been greatly
  21. improved. So I thaught 'I can do better than that', and now, well over a year
  22. later, here is the result, a one and a half pass assembler, which has at
  23. least two and a half times the raw assembling speed of Devpac 2 (don't expect
  24. too great an increase if you are including the whole of the Amiga Include
  25. libraries from floppy disk).
  26.  
  27.   Hopefully, the editor and assembler should work on all Amigas, from
  28. Kickstart 1.2 upwards. It is being developed on a Kickstart 1.2 machine, and
  29. has been tested on Kickstarts 1.2, 1.3, 2.0 and 3.0 (A1200 and A4000/30). You
  30. may need to turn off the instruction cache on Amigas with a 68020 upwards,
  31. since Case dependant / independant symbols and BSS sections are achieved
  32. using self modifying code. I'll reset the caches after these directives soon,
  33. although it doesn't seem to cause any problems with a 256 word cache. Any
  34. problems you may experience will not cause the assembler to crash, as the
  35. self modifying bit only changes one word. The only possible problem will
  36. cause some errors where there should be none.
  37.  
  38.  
  39.   As you will be able to see, I have put a lot of time and effort into this,
  40. and so this product is shareware. I will most probably not be releasing any
  41. more versions of LECasm in this form. All future releases will only be
  42. available to registered users.
  43.  
  44.   If you register your copy, you will receive the latest version of the
  45. editor and assembler. To register, send a cheque for ten pounds sterling
  46. along to the following address :
  47.  
  48.     Justin Leck
  49.     26 Fountains Close
  50.     Whitby
  51.     North Yorkshire
  52.     YO21 1JS
  53.     England
  54.  
  55.   Also, please let me know of any bugs by writing to the above address. I can
  56. only guarantee a reply to people registering their copy of LECasm. Anyone
  57. reporting bugs and registering will receive the latest version of LECasm with
  58. those bugs fixed, so I may take a little while in responding.
  59.  
  60.   If you use the assembler to produce a game or utility, or use some of the
  61. routines in the source directory, then please credit me, and think very
  62. seriously about registering your copy of LECasm.
  63.  
  64.  
  65. Hard Drive Installation
  66. -----------------------
  67.   Copy LECasm & LECed from the c directory of this disk to the c: directory
  68. on your hard drive. LECed can be run from workbench.
  69.   Copy any other files from this disk you want onto your hard drive.
  70.   Ensure that you have the clipboard.device in your devs: directory, if you
  71. want to cut and paste between two editors running simultaneously.
  72.  
  73.  
  74. Floppy Disk Installation
  75. ------------------------
  76.   Make a backup of workbench. Make some space on the disk by deleting a few
  77. unwanted programs.
  78.   Copy LECasm & LECed from the c directory of this disk to the c directory on
  79. your back up of workbench. Also copy any other programs from the c directory
  80. you want to use.
  81.  
  82.   It is a good idea to use another disk for your source code with a copy of
  83. the Amiga include files on them.
  84.  
  85.  
  86. Using LECed
  87. ------------
  88.   When LECed is run, it attempts to load in the editor by loading 'c:LECasm'.
  89. So LECasm must be in the c directory of your boot disk. It also attempts to
  90. load in a preferences file 'LECed.prefs' from the current directory. This
  91. file can be produced by clicking on the save gadget on the preferences menu.
  92.  
  93.   As assembling to memory has not yet been implemented, you must run LECed
  94. in the background from the CLI by typing:
  95.  
  96. run LECed
  97.  
  98.   You can then edit your source code and assemble it from within the editor,
  99. saving the executable in the ram disk for later execution, or debugging with
  100. your favorite debugging tool.
  101.  
  102.   LECed can also be started from workbench, (just add a suitable .info file)
  103. although you will not be able to use the parameters available on the CLI.
  104.  
  105.   The original release versions of LECed and LECasm are included in the c
  106. direcory, named 'LECed1.0' and 'LECasm1.0' in case I've created a serious
  107. error while fixing a few bugs. To use those versions instead, just rename
  108. them to LECed and LECasm. Please note that either version of LECed will work
  109. in conjuction with either version of LECasm. Also included is a demonstration
  110. version of the Shareware version of LECed, which you will get when you
  111. register your copy. This version has the save commands and the assemble
  112. command disabled, although all the other features work correctly.
  113.  
  114.  
  115. Freebies
  116. --------
  117.   In the source directory is the complete source code for CacheClock, Hunk
  118. and a small demo. There are documents for each of them in the docs directory.
  119. All the source code is public domain, and you can do with it whatever you
  120. like, though don't do something stupid like insert a virus into CacheClock,
  121. and then release it to your enemies. I'll shortly be rewriting CacheClock,
  122. making it harddrive compatible, etc, so any suggestions would be welcome.
  123. The modified source will be available in the shareware version.
  124.  
  125.  I have also included a couple of games I have written and released into the
  126. public domain, namely Digger and Bob's Garden. For more information on them,
  127. read the docs, and I hope you like them.
  128.  
  129.  The include directory contains a full workbench 2.0 set of include files
  130. for you to do with as you wish. I have typed them all in from the ROM
  131. Kernal reference manuals, converting them all to 'rs' format and excluding
  132. all comments, so that they assemble a lot quicker (they also took me a great
  133. deal less time to type in). I have tested them as much as possible, and there
  134. are hopefully few bugs contained within them. To use them effectively, you
  135. will still need the Rom Kernal Reference manuals, or something similar to
  136. figure out how to use the structures - It just saves you having to type them
  137. in. Please note that some of the files have been split or moved to other
  138. directories for the 2.0 release (compared to 1.3), but they should be
  139. downwardly compatible.
  140.  
  141.  Including these files normally takes a lot of time, (having CacheClock
  142. running in the background, or copying them to a ramdisk helps) so I normally
  143. cut all of the structures which I use from the files, and store them in a
  144. single include file, as seen with CacheClock.i and others.
  145.  
  146.  
  147. Timing tests
  148. ------------
  149.  All timings done on a standard A500 running in 2Mb of Fast RAM, with all
  150. executables in a RAM-Disk. The timings were done with the system clock, from
  151. the time the command 'LECasm -b test.s' was parsed, to the time that the
  152. program stopped.
  153. Versions 2.15 of GenIm2 was used. (as given away with Amiga Format) I don't
  154. have Devpac 3, and so cannot do any speed comparisons. Version 2.42 of a68k
  155. was used.
  156.  
  157.  
  158. 0) A file containing a carriage return. (setting up time)
  159.  
  160. 1) 30000 lines of
  161.     RTS
  162.  
  163. 2) 5000 lines of
  164.     move.l    #$12345678,127(a6,d7.l)
  165.  
  166. 3)    IFD    help
  167. 5000 lines of :
  168.     move.l    #$12345678,127(a6,d7.l)
  169.     ENDC
  170.  
  171. 4) Assembling the assembler (8993 lines)
  172.  
  173. 5) Assembling the editor (7355 lines)
  174.  
  175.      A68k    GENIM2            LECASM
  176. 0)   .40s     0.22s            0.26s
  177. 1) 82.84s    24.26s (74196 lpm)    4.04s = 445545 lpm 6.0 times quicker
  178. 2) 65.70s*    15.92s (18844 lpm)    4.44s =  67568 lpm 3.6 times quicker
  179. 3) 21.78s     3.84s (78156 lpm)    1.70s = 176541 lpm 2.3 times quicker
  180. 4)   **        18.20s (29647 lpm)    6.22s =  86749 lpm 2.9 times quicker
  181. 5)   **        16.10s (27410 lpm)    5.96s =  74044 lpm 2.7 times quicker
  182.  
  183. * A68k wouldn't allow 127(a6,d7.l), so 126(a6,d7.l) was used instead
  184. ** A68k failed the last two tests, as the 'rs' directive is not available
  185.  
  186.  
  187. Known bugs & reporting bugs
  188. ---------------------------
  189.   It is inevitable that when you write programs of this size and complexity,
  190. that horrible little bugs with black hairy legs crop up in your code. I have
  191. hopefully found all of the serious ones and put them safely outside (i.e.
  192. fixed them) without letting others come in the back door when I wasn't
  193. looking. The source code for the editor and assembler is rather large
  194. (quickly approaching 400 Kb)
  195.  
  196.  
  197. -=-=-=-=-
  198.  The following is a limitation of LECasm1.0a's expression handler (fixed in
  199. the shareware version)
  200.  
  201. help    EQU    2*-2
  202.  
  203. will produce an assembler error bad arithmetic. Use: 2*(-2)
  204. -=-=-=-=-
  205.     dc.b    "a"+$80,"b"+$80
  206.  
  207. will produce an Expected comma error. Instead use:
  208.  
  209.     dc.b    $80+"a",$80+"b"
  210.  
  211. I'm trying to think of a good method of correcting this
  212. -=-=-=-=-
  213.  
  214.   When reporting bugs, try and give me as much information as possible, such
  215. as a few lines of code (like the above) which should assemble but won't or
  216. produces the incorrect assembled code. Also if you find any typing errors or
  217. omissions in the include files, please tell me about them.
  218.  
  219.  
  220. Very Important
  221. --------------
  222. - Make a backup of this disk. There is very little space left on this disk
  223.   and virtually all of the workbench commands have been deleted, you should
  224.   use this as a reference.
  225. - To use LECasm in conjunction with LECed, the program 'LECasm' must be in
  226.   your c: directory
  227. - To cut and paste between two or more editors, you will need the
  228.   clipboard.device in your devs: directory, and set the appropiate option in
  229.   the preferences menu.
  230. - To speed up the assembler when using include files, either store them in a
  231.   ram disk, or use CacheClock. Please note that CacheClock only works with
  232.   the trackdisk.device, i.e. Floppy disks.
  233. - Be careful when you have no source code. (just after loading, or using
  234.   'Clear') Just hit return a couple and you will be ok. There was a problem
  235.   here, but I should have solved it.
  236. - The supplied version of LECed doesn't like lines with greater than 256
  237.   characters on them. You will crash the computer if you attempt to edit
  238.   those lines. Either shorten them with another program, or delete those
  239.   lines using the block cut function.
  240. - You need to give the assembler enough workspace to hold the entire compiled
  241.   output. Failure to do so will cause the computer to crash. The default is
  242.   set at 60k, but this can easily be surpassed if you are using the 'incbin'
  243.   directive. E.g. If the assembled executable is 100k long, then you need at
  244.   least a workspace of 100k.
  245. - The last three problems have been addressed in the shareware version
  246. - The editor doesn't like running out of memory, so don't have six copies of
  247.   it running at the same time. This mainly applies to the shareware version,
  248.   when you have lots of windows open. The main problem being if you open 10
  249.   small windows and then convert them all to full size, the amiga will run
  250.   out of chip memory and crash. (nice one Commodore)
  251.  
  252.  
  253. Current ideas of things to be added
  254. -----------------------------------
  255. - Adding the assembler directives not yet implemented.
  256. - A debugger (task handling to do, & support for 68010/20/30/40 exception
  257.   handling - difficult since I lack a suitable processor and book)
  258. - Modifying the Include directive so that it can handle AmigaDos linkable
  259.   files, thus eliminating the need for BLink.
  260. - Rewrite symbol table handling (Warp factor 9 please Scotty)
  261. - Output in Motorola S-Records & 8-bit Intel hex
  262. - Support for 68010->68040 and other processors (I already have a version
  263.   for the 6502 microprocessor)
  264. - Anything you would like to see added
  265.  
  266. Copyright notices
  267. -----------------
  268.  PPmore is copyright © Nico François (PowerPeak)
  269.  The Include files are copyright © 1985-1994 Commodore-Amiga Inc.
  270.  Blink is copyright The Software Distillery (see the doc file for more info)
  271.  All other programs on this disk have been written and are Copyright ©
  272. 1992-1994 Justin Leck
  273.  
  274.